package com.hymjweb.demo.hymj.master_bill_manage.flight.bean;

import com.hymjweb.demo.framework.util.pojoContrast.FieldMeta;
import com.hymjweb.demo.hymj.master_bill_manage.other_charges.bean.BMasterBillOtherChargePojo;
import com.hymjweb.demo.hymj.native_bill_manage.bean.BNativeBillPojo;
import lombok.Data;

import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Table(name = "b_master_bill_flight")
@Data
public class BMasterBillFlightPojo implements Serializable{

    @FieldMeta(columnname = "id", name = "航空主单ID")
    private String id;

    @FieldMeta(columnname = "transport_way_id", name = "承运方式ID",comment = "关联xt_dic.id key='XT_DIC_TRANSPORT_WAY'")
    private Long transportWayId;

    @FieldMeta(columnname = "out_unit_id", name = "外发单位ID", comment = "关联b_out_unit.id")
    private String outUnitId;

    @FieldMeta(columnname = "flight_date", name = "航班日期")
    private Date flightDate;

    @FieldMeta(columnname = "airlines_id", name = "航空公司ID",comment = "关联xt_airlines.id")
    private String airlinesId;

    @FieldMeta(columnname = "load_way_id", name = "配货方式ID",comment = "关联xt_dic.id key='XT_DIC_LOAD_WAY'")
    private Long loadWayId;

    @FieldMeta(columnname = "goods_type_id", name = "货物类型ID",comment = "关联xt_dic.id key='XT_DIC_GOODS_TYPE'")
    private Long goodsTypeId;

    @FieldMeta(columnname = "airport_id", name = "始发机场ID",comment = "关联xt_airport.id")
    private String airportId;

    @FieldMeta(columnname = "dest_city_id", name = "目的市ID",comment = "关联xt_city.id")
    private String destCityId;

    @FieldMeta(columnname = "flight_no", name = "班次号")
    private String flightNo;

    @FieldMeta(columnname = "flight_name", name = "班次名")
    private String flightName;

    @FieldMeta(columnname = "plan_take_off_time", name = "计划时间")
    private String planTakeOffTime;

    @FieldMeta(columnname = "agent_company_id", name = "发货公司ID",comment = "关联xt_master_bill_no_agent_company.id")
    private String agentCompanyId;

    @FieldMeta(columnname = "agent_company_name", name = "发货公司名称")
    private String agentCompanyName;

    @FieldMeta(columnname = "agent_company_phone", name = "发货公司电话")
    private String agentCompanyPhone;

    @FieldMeta(columnname = "agent_company_address", name = "发货公司地址")
    private String agentCompanyAddress;

    @FieldMeta(columnname = "receive_customer_id", name = "收货客户id",comment = "收货人ID,合大票时关联xt_pick_up_point.id,注意是航空类型的,如果单独开单，则不关联")
    private String receiveCustomerId;

    @FieldMeta(columnname = "receive_customer_name", name = "收货客户名称")
    private String receiveCustomerName;

    @FieldMeta(columnname = "receive_customer_phone", name = "收货客户电话")
    private String receiveCustomerPhone;

    @FieldMeta(columnname = "receive_customer_address", name = "收货客户地址")
    private String receiveCustomerAddress;

    @FieldMeta(columnname = "freight_species_id", name = "运价种类ID",comment = "关联xt_dic.id key='XT_DIC_FREIGHT_SPECIES',如果只有一种运价种类，则直接选择")
    private Long freightSpeciesId;

    @FieldMeta(columnname = "goods_code_id", name = "商品代号ID",comment = "关联xt_dic.id key='XT_DIC_GOODS_CODE'")
    private Long goodsCodeId;

    @FieldMeta(columnname = "goods_name", name = "货物名称")
    private String goodsName;

    @FieldMeta(columnname = "packing_way_id", name = "包装方式ID",comment = "关联xt_dic.id key='XT_DIC_PACKING_WAY'")
    private Long packingWayId;

    @FieldMeta(columnname = "total_number", name = "总件数")
    private Long totalNumber;

    @FieldMeta(columnname = "actual_weight", name = "实际重量")
    private Double actualWeight;

    @FieldMeta(columnname = "chargeable_weight", name = "计费重量")
    private Double chargeableWeight;

    @FieldMeta(columnname = "actual_load_total_weight", name = "实际配载总重量",comment = "实际配载总重量,用于成本分摊计算")
    private Double actualLoadTotalWeight;

    @FieldMeta(columnname = "weight_rate", name = "重量费率")
    private Double weightRate;

    @FieldMeta(columnname = "transport_cost", name = "航空运费")
    private Double transportCost;

    @FieldMeta(columnname = "pull_dispose_transport_cost_amount", name = "航空运费调整金额", comment = "航空运费拉货调整金额(可正可负，正值表示公司补交给航空公司，负值表示航空公司退费给公司)")
    private Double pullDisposeTransportCostAmount;

    @FieldMeta(columnname = "transport_cost_account_check_status_id", name = "航空运费对账状态ID", comment = "航空运费对账状态ID,关联xt_dic.id key=XT_DIC_ACCOUNT_CHECK_STATUS")
    private Long transportCostAccountCheckStatusId;

    @FieldMeta(columnname = "calc_weight_category_id", name = "计算重量分类", comment = "计重量分类ID,关联xt_dic.id,key='XT_DIC_CALC_WEIGHT_CATEGORY'")
    private Long calcWeightCategoryId;

    @FieldMeta(columnname = "airport_goods_site_id", name = "机场货站ID",comment = "关联xt_airport_goods_site.id")
    private String airportGoodsSiteId;

    @FieldMeta(columnname = "declared_value", name = "声明价值")
    private Double declaredValue;

    @FieldMeta(columnname = "ground_amount", name = "地面运费")
    private Double groundAmount;

    @FieldMeta(columnname = "pull_dispose_ground_amount", name = "地面运费调整金额", comment = "地面运费调整金额，可正可负(正表示公司需要补交费用给机场，为负表示机场退费给公司)")
    private Double pullDisposeGroundAmount;

    @FieldMeta(columnname = "ground_amount_account_check_status_id", name = "地面运费对账状态ID", comment = "地面运费对账状态ID,关联xt_dic.id key=XT_DIC_ACCOUNT_CHECK_STATUS")
    private Long groundAmountAccountCheckStatusId;

    @FieldMeta(columnname = "stamp_duty", name = "印花税")
    private Double stampDuty;

    @FieldMeta(columnname = "insurance_fee", name = "保险费")
    private Double insuranceFee;

    @FieldMeta(columnname = "airlines_add_cost", name = "航空附加费")
    private Double airlinesAddCost;

    @FieldMeta(columnname = "pull_dispose_airlines_add_cost_amount", name = "航空附加费用调整金额", comment = "航空附加费用调整金额(可正可负，正表示公司补交费用给航空公司中，为负表示航空公司退费给公司)")
    private Double pullDisposeAirlinesAddCostAmount;

    @FieldMeta(columnname = "airlines_add_cost_account_check_status_id", name = "航空附加费对账状态ID", comment = "航空附加费对账状态ID,关联xt_dic.id key=XT_DIC_ACCOUNT_CHECK_STATUS")
    private Long airlinesAddCostAccountCheckStatusId;

    @FieldMeta(columnname = "other_charges", name = "其他费用")
    private Double otherCharges;

    @FieldMeta(columnname = "other_charges_comment", name = "其他费用说明")
    private String otherChargesComment;

    @FieldMeta(columnname = "pull_dispose_other_charges_amount", name = "其他费用调整金额", comment = "其他费用调整金额(可正可负，正表示公司补交费用给相关方面，为负表示相关方面退费给公司)")
    private Double pullDisposeOtherChargesAmount;

    @FieldMeta(columnname = "other_charges_account_check_status_id", name = "其他费用费对账状态ID", comment = "其他费用费对账状态ID,关联xt_dic.id key=XT_DIC_ACCOUNT_CHECK_STATUS")
    private Long otherChargesAccountCheckStatusId;

    @FieldMeta(columnname = "master_bill_payment_method_id", name = "付款方式ID",comment = "关联xt_dic.id key='XT_DIC_MASTER_BILL_PAYMENT_METHOD'")
    private Long masterBillPaymentMethodId;

    @FieldMeta(columnname = "total_amount", name = "总金额")
    private Double totalAmount;

    @FieldMeta(columnname = "drop_amount", name = "调整金额",comment = "调整金额=航空运费调整金额 + 地面运费调整金额 + 航空附加费调整金额 +　其他费用调整金额，默认为0")
    private Double dropAmount;

    @FieldMeta(columnname = "settlement_amount", name = "结算金额",comment = "结算金额 = 总运费 + 调整金额")
    private Double settlementAmount;

    @FieldMeta(columnname = "open_master_bill_date", name = "开单日期")
    private Date openMasterBillDate;

    @FieldMeta(columnname = "open_master_bill_department_id", name = "开单部门ID",comment = "关联xt_department.id")
    private String openMasterBillDepartmentId;

    @FieldMeta(columnname = "open_master_bill_user_id", name = "开单人ID",comment = "关联xt_user.id")
    private String openMasterBillUserId;

    @FieldMeta(columnname = "airlines_add_cost_status_id", name = "航空附加费结清状态ID",comment = "关联xt_dic.id key='XT_DIC_SETTLEMENT_STATUS'")
    private Long airlinesAddCostStatusId;

    @FieldMeta(columnname = "transport_cost_status_id", name = "运费结清状态ID",comment = "关联xt_dic.id key='XT_DIC_SETTLEMENT_STATUS'")
    private Long transportCostStatusId;

    @FieldMeta(columnname = "ground_amount_status_id", name = "地面运费结清状态ID",comment = "关联xt_dic.id key='XT_DIC_SETTLEMENT_STATUS'")
    private Long groundAmountStatusId;

    @FieldMeta(columnname = "other_charges_status_id", name = "其他费用结清状态ID",comment = "关联xt_dic.id key='XT_DIC_SETTLEMENT_STATUS'")
    private Long otherChargesStatusId;

    @FieldMeta(columnname = "drop_status_id", name = "拉货状态ID",comment = "拉货状态ID,关联xt_dic.id key='XT_DIC_DROP_STATUS',用于标识该主单是否拉过货")
    private Long dropStatusId;

    @FieldMeta(columnname = "account_check_status_id", name = "主单对账状态ID",comment = "主单对账状态ID,关联xt_dic.id key='XT_DIC_ACCOUNT_CHECK_STATUS'")
    private Long accountCheckStatusId;

    @FieldMeta(columnname = "settlement_status_id", name = "主单结算状态ID",comment = "主单结算状态,关联xt_dic.id key='XT_DIC_SETTLEMENT_STATUS',结算状态的确认必须是主单已对账的状态,如果是结算完成，则该主单不能再做任何信息调整")
    private Long settlementStatusId;

    @FieldMeta(columnname = "comment", name = "备注")
    private String comment;

    @FieldMeta(columnname = "load_native_bill_ids", name = "配载分单号",comment = "配载分单号,格式为 id1,id2")
    private String loadNativeBillIds;

    @FieldMeta(columnname = "create_time", name = "创建时间")
    private Date createTime;

    @FieldMeta(columnname = "create_user_id", name = "记录添加人ID", comment = "关联XT_USER.ID")
    private String createUserId;

    @FieldMeta(columnname = "update_time", name = "更新时间")
    private Date updateTime;

    @FieldMeta(columnname = "update_user_id", name = "更新用户ID", comment = "关联XT_USER.ID")
    private String updateUserId;

}
